home *** CD-ROM | disk | FTP | other *** search
/ Mac Easy 2010 May / Mac Life Ubuntu.iso / casper / filesystem.squashfs / usr / lib / python2.6 / dist-packages / UpdateManager / DistUpgradeFetcher.pyc (.txt) < prev    next >
Encoding:
Python Compiled Bytecode  |  2009-10-12  |  3.7 KB  |  96 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.6)
  3.  
  4. import pygtk
  5. pygtk.require('2.0')
  6. import gtk
  7. from ReleaseNotesViewer import ReleaseNotesViewer
  8. from Core.utils import *
  9. from Core.DistUpgradeFetcherCore import DistUpgradeFetcherCore
  10. from gettext import gettext as _
  11. import urllib2
  12. import dbus
  13. import os
  14. import socket
  15.  
  16. class DistUpgradeFetcherGtk(DistUpgradeFetcherCore):
  17.     
  18.     def __init__(self, new_dist, progress, parent):
  19.         DistUpgradeFetcherCore.__init__(self, new_dist, progress)
  20.         self.parent = parent
  21.         self.window_main = parent.window_main
  22.  
  23.     
  24.     def error(self, summary, message):
  25.         return error(self.window_main, summary, message)
  26.  
  27.     
  28.     def runDistUpgrader(self):
  29.         inhibit_sleep()
  30.         if os.getuid() != 0:
  31.             os.execv('/usr/bin/gksu', [
  32.                 'gksu',
  33.                 '--desktop',
  34.                 '/usr/share/applications/update-manager.desktop',
  35.                 '--',
  36.                 self.script] + self.run_options)
  37.         else:
  38.             os.execv(self.script, [
  39.                 self.script] + self.run_options)
  40.         allow_sleep()
  41.  
  42.     
  43.     def showReleaseNotes(self):
  44.         if self.new_dist.releaseNotesURI != None:
  45.             uri = self._expandUri(self.new_dist.releaseNotesURI)
  46.             self.window_main.set_sensitive(False)
  47.             self.window_main.window.set_cursor(gtk.gdk.Cursor(gtk.gdk.WATCH))
  48.             while gtk.events_pending():
  49.                 gtk.main_iteration()
  50.             res = gtk.RESPONSE_CANCEL
  51.             timeout = socket.getdefaulttimeout()
  52.             
  53.             try:
  54.                 socket.setdefaulttimeout(5)
  55.                 release_notes = urllib2.urlopen(uri)
  56.                 notes = release_notes.read()
  57.                 textview_release_notes = ReleaseNotesViewer(notes)
  58.                 textview_release_notes.show()
  59.                 self.parent.scrolled_notes.add(textview_release_notes)
  60.                 self.parent.dialog_release_notes.set_transient_for(self.window_main)
  61.                 res = self.parent.dialog_release_notes.run()
  62.                 self.parent.dialog_release_notes.hide()
  63.             except urllib2.HTTPError:
  64.                 primary = '<span weight="bold" size="larger">%s</span>' % _('Could not find the release notes')
  65.                 secondary = _('The server may be overloaded. ')
  66.                 dialog = gtk.MessageDialog(self.window_main, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, '')
  67.                 dialog.set_title('')
  68.                 dialog.set_markup(primary)
  69.                 dialog.format_secondary_text(secondary)
  70.                 dialog.run()
  71.                 dialog.destroy()
  72.             except IOError:
  73.                 primary = '<span weight="bold" size="larger">%s</span>' % _('Could not download the release notes')
  74.                 secondary = _('Please check your internet connection.')
  75.                 dialog = gtk.MessageDialog(self.window_main, gtk.DIALOG_MODAL, gtk.MESSAGE_ERROR, gtk.BUTTONS_CLOSE, '')
  76.                 dialog.set_title('')
  77.                 dialog.set_markup(primary)
  78.                 dialog.format_secondary_text(secondary)
  79.                 dialog.run()
  80.                 dialog.destroy()
  81.  
  82.             socket.setdefaulttimeout(timeout)
  83.             self.window_main.set_sensitive(True)
  84.             self.window_main.window.set_cursor(None)
  85.             if res == gtk.RESPONSE_OK:
  86.                 return True
  87.         
  88.         return False
  89.  
  90.  
  91. if __name__ == '__main__':
  92.     error(None, 'summary', 'message')
  93.     d = DistUpgradeFetcherGtk(None, None)
  94.     print d.authenticate('/tmp/Release', '/tmp/Release.gpg')
  95.  
  96.